_keyPressEvent : function(actor, event) {
let keysym = event.get_key_symbol();
- let shift = (event.get_state() & Clutter.ModifierType.SHIFT_MASK);
+ let shift = (Shell.get_event_state(event) & Clutter.ModifierType.SHIFT_MASK);
// The WASD stuff is for debugging in Xephyr, where the arrow
// keys aren't mapped correctly
},
_onActivate: function (actor, event) {
- let modifiers = event.get_state();
+ let modifiers = Shell.get_event_state(event);
if (modifiers & Clutter.ModifierType.CONTROL_MASK) {
this.appInfo.launch();
overview.hide();
return true;
- } else if (symbol == Clutter.F2 && (event.get_state() & Clutter.ModifierType.MOD1_MASK)) {
+ } else if (symbol == Clutter.F2 && (Shell.get_event_state(event) & Clutter.ModifierType.MOD1_MASK)) {
getRunDialog().open();
}
}
gdk_display_get_pointer (gdk_display_get_default (), NULL, NULL, NULL, &mods);
return mods & GDK_MODIFIER_MASK;
}
+
+/**
+ * shell_get_event_state:
+ * @event: a #ClutterEvent
+ *
+ * Gets the current state of the event (the set of modifier keys that
+ * are pressed down). Thhis is a wrapper around
+ * clutter_event_get_state() that strips out any un-declared modifier
+ * flags, to make gjs happy; see
+ * https://bugzilla.gnome.org/show_bug.cgi?id=597292.
+ *
+ * Return value: the state from the event
+ */
+ClutterModifierType
+shell_get_event_state (ClutterEvent *event)
+{
+ ClutterModifierType state = clutter_event_get_state (event);
+ return state & CLUTTER_MODIFIER_MASK;
+}
GdkModifierType shell_global_get_modifier_keys (ShellGlobal *global);
+ClutterModifierType shell_get_event_state (ClutterEvent *event);
+
G_END_DECLS
#endif /* __SHELL_GLOBAL_H__ */